<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

require APPPATH."libraries/MX/Controller.php";
/**
 * 扩展控制器
 */
class MY_Controller extends MX_Controller {
	/**
	 * 视图文件路径
	 * @var string
	 */
	public $view_path;
	
	/**
	 * 页面标题
	 * @var string
	 */
	public $pagename='';
	
	/**
	 * 关键字
	 * @var string
	 */
	public $keywords = '';
	
	/**
	 * 页面描述
	 * @var string
	 */
	public $description = '';
	
	/**
	 * 页面变量
	 * @var array
	 */
	public $data = array();
	
	/**
	 * 页面js文件
	 * @var array
	 */
	public $script = array();
	
	public function __construct(){
		parent::__construct();

	}
	
	/**
	 * 设置页面标题
	 * @param string $pagename
	 */
	public function set_title($pagename=''){
		$this->pagename = $pagename;
	}
	
	/**
	 * 设置关键词
	 */
	public function set_keywords($keywords){
		$this->keywords = $keywords;
	}
	
	/**
	 * 设置描述
	 */
	public function set_description($description){
		$this->description = $description;
	}
	
	/**
	 * 初始化页面参数
	 */
	public function init_page_params(){
		$data = array(
				'pagename' => $this->pagename,
				'keywords' => $this->keywords,
				'description' => $this->description
				);
		$this->assign($data);
	}
	
	/**
	 * 注册变量到页面
	 * 这个函数的参数可以是可以提供两个参数或一个参数
	 *
	 * 如果提供两个参数,参数是一个数组,注册一个或多个变量如:array($key1=>$value1,$key2=>$value2);
	 * 如果提供一个参数,参数是$key,$value 的形式
	 * @example assign('aticle',$article); assign(array('aticle'=>$article,'author'=>$author));
	 */
	public function assign(){
		$params = func_get_args();
		$params_num = func_num_args();
		if ($params_num ==2){
			list($key,$value) = $params;
			$this->data[$key] = $value;
		}
		elseif ($params_num==1){
			foreach ($params as $key=>$value){
				$this->data[$key] = $value;
			}
		}
	}
	
	/**
	 * 输出页面
	 * @param string $file文件名(带路径)
	 * @param array $data
	 */
	public function display($file,$data=array()){
		$this->init_page_params();
		
		if (count($data)){
			foreach ($data as $key=>$val){
				if (!empty($key)){
					$this->data[$key] = $val;
				}
			}
		}
		$this->load->view($file,$this->data);
	}
}